Make sure the leader_window's WM_CLIENT_LEADER points to itself. #435028
authorDan Winship <danw@src.gnome.org>
Wed, 2 May 2007 00:02:14 +0000 (00:02 +0000)
committerDan Winship <danw@src.gnome.org>
Wed, 2 May 2007 00:02:14 +0000 (00:02 +0000)
* gdk/x11/gdkwindow-x11.c (setup_toplevel_window): Make sure the
leader_window's WM_CLIENT_LEADER points to itself. #435028

svn path=/trunk/; revision=17762

ChangeLog
gdk/x11/gdkwindow-x11.c

index b9eb03d442b8ec4b9792fa318facd40d377d778d..fa1fac3a18e66aef665504b9e3f6eeb65ad59610 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-01  Dan Winship  <danw@novell.com>
+
+       * gdk/x11/gdkwindow-x11.c (setup_toplevel_window): Make sure the
+       leader_window's WM_CLIENT_LEADER points to itself. #435028
+
 2007-05-02  Christian Persch  <chpe@gnome.org>
 
        * gtk/gtktreemodel.c: (gtk_tree_iter_copy), (gtk_tree_iter_free): Use
index 621d3245dd1da8e58ae4deaaeb040ffac030e8d5..017b8c343c64abb8720654c6b5cf1ad651e311df 100644 (file)
@@ -572,6 +572,7 @@ setup_toplevel_window (GdkWindow *window,
   GdkScreenX11 *screen_x11 = GDK_SCREEN_X11 (GDK_WINDOW_SCREEN (parent));
   XSizeHints size_hints;
   long pid;
+  Window leader_window;
     
   if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_DIALOG)
     XSetTransientForHint (xdisplay, xid, xparent);
@@ -608,11 +609,14 @@ setup_toplevel_window (GdkWindow *window,
                   XA_CARDINAL, 32,
                   PropModeReplace,
                   (guchar *)&pid, 1);
-  
+
+  leader_window = GDK_DISPLAY_X11 (screen_x11->display)->leader_window;
+  if (!leader_window)
+    leader_window = xid;
   XChangeProperty (xdisplay, xid, 
                   gdk_x11_get_xatom_by_name_for_display (screen_x11->display, "WM_CLIENT_LEADER"),
                   XA_WINDOW, 32, PropModeReplace,
-                  (guchar *) &GDK_DISPLAY_X11 (screen_x11->display)->leader_window, 1);
+                  (guchar *) &leader_window, 1);
 
   if (toplevel->focus_window != None)
     XChangeProperty (xdisplay, xid,